// 定义日志消息类，进行日志中间信息的存储：
//     1.日志的输出时间    用于过滤日志输出时间
//     2.日志等级          用于过滤日志分析
//     3.源文件名称        
//     4.源代码行号        用于定位出现错误的代码位置
//     5.线程ID            用于过滤出错的线程
//     6.日志主体消息
//     7.日志器名称        （当前支持多日志器同时使用）

#ifndef __M_MSG_H__
#define __M_MSG_H__
#include<iostream>
#include<string>
#include<thread>
#include"level.hpp"
#include"util.hpp"

using std::string;

namespace mylog
{
    struct LogMsg
    {
        time_t _time;//日志产生的时间戳
        LogLevel::level _level;//日志等级
        size_t _line;//行号
        std::thread::id _tid;//线程ID
        string _file;//源文件名
        string _logger;//日志器名称
        string _payload;//有效消息数据

        LogMsg(LogLevel::level lv,
        size_t line,
        string file,
        string logger,
        string msg):
        _time(Util::Date::now()),
        _level(lv),
        _line(line),
        _tid(std::this_thread::get_id()),
        _file(file),
        _logger(logger),
        _payload(msg){}
    };
}
#endif 